1. Field of the Invention
The present invention generally relates to optical scanners or readers for recognizing optical characters and codes, and more particularly to a two-channel bar code wherein the data is encoded in the logical exclusive-or combination of the two channels, and to a device for reading such a code.
2. Description of the Prior Art
Optical readers are used today in a wide variety of applications, such as optical character recognition, electronic facsimile transmission, and bar code scanning. The most common example of the latter type of optical coding is the ubiquitous Universal Product Code (UPC) which has been adopted by the retail industry, and appears on nearly all products available in the retail market. The UPC utilizes a single-channel encoding scheme, i.e., a single series of lines of varying thicknesses which are grouped together at varying intervals. This series of bars or marks is scanned with a single beam, which may traverse the code along its upper, middle or lower portions with the same results.
Standard single-channel bar codes, however, suffer from several disadvantages. The primary disadvantage is the complicated manner in which the data must be encoded to allow for a wide range of scanning conditions. For example, scanning of UPC codes in a retail establishment must accommodate steeply varying scan angles, variable ambient lighting and, when hand-held scanners are used, must further accommodate varying scan speeds. Single-channel bar codes are also usually bidirectional. For these reasons and others, the encoding schemes conventionally used with single-channel bar codes are complicated and, consequently, the optical scanners used to read such marks are relatively expensive to manufacture.
One simple alternative to a single-channel bar code is the prior art two-channel clock/data code, depicted in FIG. 6A. In this code, one channel (the clock channel) consists of uniformly spaced bars each having approximately the same width or thickness (the lower set of bars in FIG. 6A). The second channel (the data channel), is contiguous with the first channel and contains the data encoded in binary form (the upper set of bars in FIG. 6A). The leading edge of the clock channel is used to strobe the data into a register. In the example illustrated, the data cells are phase shifted 90.degree. from the leading edge of the clock cells. When the optical reader detects the leading edge of the next clock cell, it immediately checks the state of the data channel to read either the binary number 1 (e.g., a black mark) or the binary number 0 (e.g., a white space). This code may be read with an optical scanner having either two separate light beams, or having a single, widely dispersed light beam (or light flooding).
The two-channel clock/data code has several advantages over single-channel bar codes, besides its simplicity. For example, the two-channel clock/data code is more dense than a standard single-channel code; this means that the same information may be encrypted into a shorter bar code, which in turn requires a shorter scanning path by the optical reader. Yet, use of a two-channel clock/data code can create new problems. First of all, the object to be scanned must be properly oriented with respect to the two optical detectors in the reader, since the reader has dedicated one of the detectors for sensing the clock channel and the other for sensing the data channel. In other words, if the two-channel clock/data code is turned upside down, the reader will register an error when it attempts to use the data channel for clock information. A related limitation concerns the strict tolerance required in the width of the clock cells. If the code has printing defects which causes either the spaces or the marks to have widths which vary considerably, then the reader will register an error when the location of the next clock edge does not correspond to the anticipated location. Finally, the two-channel clock/data code does not allow self-checking which standard single-channel bar codes employ. It would, therefore, be desirable and advantageous to devise a bar code which is simpler to use than single-channel codes, but which avoids the limitations of the two-channel clock/data code. A relatively inexpensive scanner could then be used to read such a code.